{% macro event_row(e, now, names=none, href=none, clock=false) %} {#- `names`: {actor -> display name} (Module.actor_names, merged in the page context as `actor_names`). A caller may pass its own; otherwise the page's is used. An actor with no name shows its raw id, as before. `href`: the record behind the row (the calendar's day sheet, #44), drawn as an "open →" link; none draws nothing. `clock`: the time of day instead of "3h ago" — on a page that is one day, "ago" makes you do arithmetic. -#} {% set names = names if names is not none else (actor_names or {}) %} {% set p = pl(e) %} {#- 🔴 words somebody else attached to a change in the running HIDDEN lock are theirs and stored verbatim — and would tell the pup the time they chose not to know. Shown after. -#} {#- hidden_session_id is '*' when the hidden lock could not be read: masked everywhere (fail closed) -#} {% set theirs_hidden = e.session_id and (hidden_session_id == '*' or e.session_id == hidden_session_id) and delegated(e.actor) %} {% set why = ('🔒 their words — hidden with your timer' if theirs_hidden else p.reason) if p.reason else '' %} {% set meta = kind_meta.get(e.kind) or act_meta.get(e.kind) or ('•', e.kind) %} {#- a hygiene window rides freeze/unfreeze (core/hygiene.py) — it reads as what it was -#} {% if p.hygiene and e.kind == 'freeze' %}{% set meta = kind_meta.get('hygiene_open') or meta %}{% endif %} {% if p.relocked and e.kind == 'unfreeze' %}{% set meta = kind_meta.get('relocked') or meta %}{% endif %}
{{ p.code }}
{%- elif e.kind == 'prompt_added' %}a {{ p.kind }} prompt for {{ p.for_day }}
{%- elif e.kind == 'undo' %}{{ p.target_kind }} #{{ p.target_event_id }}{% if p.reverted_delta %} · {{ p.reverted_delta|sdur }} back{% endif %}{% if p.reason %} · {{ p.reason }}{% endif %}
{%- elif why %}{{ why }}{% endif %}